﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Texfina.Core.Web;
using Texfina.BOQry.Co;
using Texfina.Entity.Co;
using Texfina.Core.Common;
using System.Threading.Tasks;
using System.Data;
using System.Text;





namespace CO
{
    public partial class wfAprobacionOC : System.Web.UI.Page
    {
        string estado;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                chkPendiente.Checked = true;
                CargarGridLoad();

                WebHelper.LoadListControl2(dbPlanta, BLocal.Local_qry01(), "ds_local", "id_local");

            }
        }


        private void CargarGridLoad()
        {
            try
            {
                Evaluar();
                EOrdenCompra eoc = new EOrdenCompra();
                eoc.Id_Empresa = "001"; //cargar con session
                eoc.Id_periodo = "2013"; //cargar con session

                eoc.Estado = estado;
                gvListar.DataSource = BOrdenCompra.OrderCompra_qry002(eoc);
                gvListar.DataBind();

            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }

        }

        private void Evaluar()
        {

           if (chkPendiente.Checked == true)
            {
                estado = Constants2.ConstEstadoOC.Pendiente;
            }
            else if (chk_nAutoriza.Checked == true)
            {
                estado = Constants2.ConstEstadoOC.nPendiente;
            }
            else
            {
                estado = Constants2.ConstEstadoOC.Autorizado;
            }
        }

        private void CargarGrid()
        {
            try
            {

                Evaluar();

                DateTime hoy = DateTime.Today;
                string fecha_actual = hoy.ToString("dd-MM-yyyy");

                EOrdenCompra eoc = new EOrdenCompra();

                eoc.Fe_ordenco_ini = Convert.ToDateTime(fecha_actual);
                eoc.Fe_ordenco_fin = Convert.ToDateTime(fecha_actual);

                eoc.Id_Empresa = "001"; //cargar con session
                eoc.Id_periodo = "2013"; //cargar con session

                eoc.Estado = estado;
                gvListar.DataSource = BOrdenCompra.OrderCompra_qry02(eoc);
                gvListar.DataBind();
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }
        }

        private void CargarGrid_Parametro()
        {
            //try
            //{
            Evaluar();
            EOrdenCompra eoc = new EOrdenCompra();

            eoc.Fe_ordenco_ini = Convert.ToDateTime(ucControlFecha1.Text);
            eoc.Fe_ordenco_fin = Convert.ToDateTime(ucControlFecha2.Text);
            eoc.Id_Empresa = "001"; //cargar con session
            eoc.Id_periodo = "2013"; // cargar con session
            eoc.Estado = estado;
            eoc.strEmitido = dbPlanta.SelectedItem.Text;
            gvListar.DataSource = BOrdenCompra.OrderCompra_qry02(eoc);
            gvListar.DataBind();
            //}
            //catch (Exception ex)
            //{
            //    Response.Write(ex.ToString());
            //}

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {

            //System.Text.StringBuilder sb = new System.Text.StringBuilder();

            //sb.Append(@"<script language='javascript'>");
            //sb.Append(@"$(document).ready(function ChangeColor() {");
            //sb.Append(@"$.metadata.setType('class');");
            //sb.Append(@"$('table.grid').each(function () {");
            //sb.Append(@"var grid = $(this);");
            //sb.Append(@"if (grid.find('tbody > tr > th').length > 0) {");
            //sb.Append(@"grid.find('tbody').before('<thead><tr></tr></thead>');");
            //sb.Append(@"grid.find('thead:first tr').append(grid.find('th'));");
            //sb.Append(@"grid.find('tbody tr:first').remove();");
            //sb.Append(@"}");
            //sb.Append(@"if (grid.hasClass('sortable') && grid.find('tbody:first > tr').length > 10) {");
            //sb.Append(@"grid.dataTable({");
            //sb.Append(@"bJQueryUI: true,");
            //sb.Append(@"iDisplayLength: 20,");
            //sb.Append(@"sScrollY: '100%',");
            //sb.Append(@"sPaginationType: 'full_numbers',");
            //sb.Append(@"aoColumnDefs: [");
            //sb.Append(@"{ bSortable: false, aTargets: grid.metadata().disableSortCols }");
            //sb.Append(@"]");
            //sb.Append(@"});");
            //sb.Append(@"}");
            //sb.Append(@"});");
            //sb.Append(@"});");
            //sb.Append(@"</script>");

            //if (!ClientScript.IsClientScriptBlockRegistered("JSScriptBlock"))
            //{
            //    ClientScript.RegisterClientScriptBlock(this.GetType(), "JSScriptBlock", sb.ToString());
            //}

            //string funcCall = "<script language='javascript'>ChangeColor();</script>";

            //if (!ClientScript.IsStartupScriptRegistered("JSScript"))
            //{
            //    ClientScript.RegisterStartupScript(this.GetType(), "JSScript", funcCall);
            //}

            //if (!ClientScript.IsStartupScriptRegistered("JSScript"))
            //{

            //    ClientScript.RegisterStartupScript(this.GetType(), "JSScript", sb.ToString());

            //}


            Evaluar();
            EOrdenCompra eoc = new EOrdenCompra();

            eoc.Fe_ordenco_ini = Convert.ToDateTime(ucControlFecha1.Text);
            eoc.Fe_ordenco_fin = Convert.ToDateTime(ucControlFecha2.Text);
            eoc.Id_Empresa = "001"; //cargar con session
            eoc.Id_periodo = "2013"; // cargar con session
            eoc.Estado = estado;
            eoc.strEmitido = dbPlanta.SelectedItem.Text;
            gvListar.DataSource = BOrdenCompra.OrderCompra_qry02(eoc);
            gvListar.DataBind();




        }

        protected void btnAprobar_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow row in gvListar.Rows)
            {
                // almacena en variables los items que va recorriendo

                var lblOrdenCompra = row.FindControl("lblId_Ordenco") as Label;

                var chk = row.FindControl("chkBxSelect") as CheckBox;

                // Solo aquellos items que tienen el check activo

                if (chk.Checked)
                {
                    //Response.Write(lblid.Text + "<br>");

                    EOrdenCompra eoc = new EOrdenCompra();

                    //la entidad obtine los siguientes valores a almacenar

                    eoc.psin_typeupd = "11";

                    eoc.Id_ordenco = lblOrdenCompra.Text;

                    eoc.Id_aprueba = "249"; //LLENAR CON SESSION

                    eoc.stordenco = "P";

                    eoc.Id_uupdarec = "Asanchez"; //LLENAR CON SESSION

                    eoc.Id_Empresa = "001";  // LLENAR CON SESSION

                    eoc.Id_periodo = "2013"; // LLENAR CON SESSION

                    eoc.Estado = estado;

                    BOrdenCompra.OrderCompra_mnt02(eoc);

                    CargarGrid_Parametro();
                }

            }
        }

        protected void btnNAprobar_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow row in gvListar.Rows)
            {
                // almacena en variables los items que va recorriendo

                var lblOrdenCompra = row.FindControl("lblId_Ordenco") as Label;

                var chk = row.FindControl("chkBxSelect")  as CheckBox;

                // Solo aquellos items que tienen el check activo

                if (chk.Checked)
                {
                    //Response.Write(lblid.Text + "<br>");

                    EOrdenCompra eoc = new EOrdenCompra();

                    //la entidad obtine los siguientes valores a almacenar

                    eoc.psin_typeupd = "11";

                    eoc.Id_ordenco = lblOrdenCompra.Text;

                    eoc.Id_autoriza = "249"; //LLENAR CON SESSION

                    eoc.stordenco = "C";

                    eoc.Id_uupdarec = "Asanchez"; //LLENAR CON SESSION

                    eoc.Id_Empresa = "001";  // LLENAR CON SESSION

                    eoc.Id_periodo = "2013"; // LLENAR CON SESSION

                    eoc.Estado = estado;

                    BOrdenCompra.OrderCompra_mnt01(eoc);

                    CargarGrid_Parametro();
                }
            }
        }

        protected void btnActualizar_Click(object sender, EventArgs e)
        {
            CargarGridLoad();
                  
        }

        protected void gvListar_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvListar.PageIndex = e.NewPageIndex;
            CargarGrid_Parametro();
        }

        protected void gvListar_Sorting(object sender, GridViewSortEventArgs e)
        {
            string sortExpression = e.SortExpression;

            if (GridViewSortDirection == SortDirection.Ascending)
            {
                GridViewSortDirection = SortDirection.Descending;
                SortGridView(sortExpression, DESCENDING);
            }
            else
            {
                GridViewSortDirection = SortDirection.Ascending;
                SortGridView(sortExpression, ASCENDING);
            }
        }

        private void SortGridView(string sortExpression, string direction)
        {
            //  You can cache the DataTable for improving performance
            CargarGrid_Parametro();
            DataTable dt = gvListar.DataSource as DataTable;
            DataView dv = new DataView(dt);
            dv.Sort = sortExpression + direction;

            gvListar.DataSource = dv;
            gvListar.DataBind();

        }
        private const string ASCENDING = " ASC";
        private const string DESCENDING = " DESC";

        public SortDirection GridViewSortDirection
        {
            get
            {
                if (ViewState["sortDirection"] == null)
                    ViewState["sortDirection"] = SortDirection.Ascending;

                return (SortDirection)ViewState["sortDirection"];
            }
            set
            {
                ViewState["sortDirection"] = value;
            }
        }


       }
}